1. Field of the Invention
The present invention generally relates to data networking and specifically to maintaining configuration information for intermediate nodes in a data network.
2. Background Information
A data network is a geographically distributed collection of interconnected communication links and segments for transporting data between nodes, such as computer systems. Many types of network segments are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect personal computers and workstations over dedicated, private communications links located in the same general physical location, such as a building or a campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Certain intermediate nodes in a data network, such as routers, are often configured to “route” data packets, between various nodes in the network. Routing is typically performed at the network layer or layer-3 (L3) of the Open Systems Interconnect (OSI) Reference Model. Routers often maintain routing databases, which are typically configured to hold routing information including L3 addresses and interface information that the routers use to determine where packets are to be forwarded in order to reach their destination. For example, a router may have a routing database containing one or more entries. Each entry may contain a L3 destination address of a destination node and interface information of an interface on the router through which the destination node may be reached. A packet containing a destination address that matches a destination address of an entry in the routing table is forwarded by the router to the interface, specified in the entry, for transfer to the destination node.
Intermediate nodes often contain various entities that are configurable. For example, an intermediate node may contain a number of ports that have various configurable entities associated with them, such as an operating speed and a mode of operation. In a typical arrangement, a user specifies parameters that are used to configure the configurable entities and saves them in a configuration file. The parameters may be specified via a command-line interface that communicates directly with the intermediate node or, alternatively, via a network management system (NMS) that communicates with the intermediate node using a protocol, such as the Simple Network Management Protocol (SNMP).
The configuration file is typically configured to hold a single configuration of the intermediate node, that is, the file contains a single version of parameters that is used to configure the entities in the intermediate node. The entities in the intermediate node are typically configured by i) reading the parameter information from the configuration file for all of the entities represented therein and ii) configuring the entities in accordance with the parameter information.
One problem with the above-described arrangement is that it does not easily accommodate changing parameters for a single entity. For example, assume a user wants to undo a change to the state of a single entity by restoring the state of the entity to the state specified in the configuration file. In some intermediate nodes, this may involve erasing the current states of all entities represented in the configuration file then restoring the states for all the entities in accordance with information contained in the configuration file. Restoring the states of the entities may, however, cause unwanted network outages, as certain entities may become unavailable for handling data packets from a time the current state is erased to the time the state is restored from the configuration file.
Another problem with the above-described arrangement is that it is difficult to maintain many different configurations for an intermediate node. For example, if only one configuration can be maintained in a configuration file, in order to accommodate more than one configuration for an intermediate node, separate configuration files would to have to be maintained (i.e., one for each configuration). As the number of different configurations increases, the number of configuration files needed to support the different configurations increases. If the number of configuration files is significant, managing the different configuration files may become quite complex.